23

» WarCraft 3 / Как прикрепить одного юнита к другому?

Похожие вопросы:

ответ
  1. Думаю, что можно.
Берем основную модель, возможно, вообще без мяса, только с гусеницами, но с кучей точек крепления. Также берем кучу моделей-аттачметов, представляющих собой эти самые пушки, корпуса и все прочее. При выборе характеристик модели через диалог или интерфейс соответственно создаем на основной модели эффекты-аттачменты, будет собрана техника. Такие штуки, как двигатель и прочие невидные извне элементы будут скорее входить в математическую модель юнита, но это также можно запилить. Название танка - сразу не скажу, есть ли триггер на смену, но на таблице рекордов можно отобразить что угодно.

2.Тоже можно.
Создаем погодный в определенной местности и делаем два триггера для контроля входа-выхода юнитов из нее. На искомых юнитов применяем нужные способности - и все готово.

  1. Здесь чуть сложнее: нужно постоянно проверять тип местности под юнитом, но тоже можно. Проверка на ограждения тоже может бить сделана.

4.Это уже интереснее. Видел раньше подобное в играх. При каждой атаке юнита случайным образом наносим или не наносим доп. урон, эффект горения, кидаем спелл на цель в зависимости от теоретического места попадания атаки.

5.И это можно. Но нужно писать нестандартную систему Альянса. Но через триггеры и JASS все можно...

  1. Продажа техники - лучше через способность, что бы кидать ее на понравившегося юнита, не стоит покупать кота в мешке. Стоимость должна зависеть от технического уровня юнита, его текущего состояния (мертвый танк попадет вам бесплатно, сами чините!), если он был модернизован дополнительно, то это тоже входит в стоимость. Разрешение на продажу делаем аналогично.

  1. Это легко через Custom Value и переменние.

Как ты понял, все что ты предложил создать можно, но на это нужно потрать хороший кусок времени. Остается пожелать тебе удачи над созданием проекта - мне идея уже нравится.

23

» WarCraft 3 / Как добавить юниту свой звук.

Похожие вопросы:

ответ
GF RaiseD:
Нашёл систему, где звук передаётся в таймер, который истекает через 0 секунд. В результате один и тот же звук может проигрываться несколько раз без всяких проблем. В инетике пишут мол это такой баг движка.

23

» WarCraft 3 / Арена.

Похожие вопросы:

ответ
Поставить им большой радус обзора и радиус агра.
ответ
научись правильно выражать свои мысли
наработки тут не кидают (это раздел вопросы а наработки)
если я правильно понял то тебе надо сделать следующее:
  1. составить список играющих игроков
  2. каждые n секунд брать из этого списка 2 случайных игрока и тпшить их героев на арену
  3. после смерти 1 из этих героев тпшить обоих на базу (т.к. проигравший мёртв то тпшнится только победитель)
теперь пройдёмся подробно по пунктам
  1. массив игроков и переменная count типа целочисленная равная 0 изначально
перебираем всех игроков от 0 до 11
если игрок играет то заносим его в массив под индексом count
увеличиваем значение count на 1
  1. триггер с событием/таймер каждые n секунд
в действиях берём случайное число от 0 до count
это индекс первого игрока на дуэли
потом снова случайное число от 0 до count
если оно совпадает с предыдущим числом то снова случайное число от 0 до count
и так до тех пор пока новое число не будет отличаться от первого (делается циклом)
потом используем полученные 2 числа как индексы к массиву игроков и тпшим их героев на арену
  1. как только герой умирает проверяем является ли владелец умершего героя одним из выбранных игроков
потом тпшим обоих героев на базу и выдаём чтото наподобие "игрок выживший_игрок победил"
подробнее в статьях
разделы 1 и 2
ответ
Steal nerves:
раскрыть
игрок А и игрок Б являются противниками. На арене дерутся. Есть два игрока-бота (пустующие слоты игроков), это игроки В и Д. В и Д между собой являются нейтральными союзниками.
можно настроить союзы. игрок А может быть не только союзником В, но и управлять юнитами игрока В. Также как и Б может делать с игроком Д.
Те юниты, которые находятся за пределами области, передать другому игроку (это временно). Но игроки могут управлять ими
Есть арена, где все враги. А есть торговая площадка, где можно продавать всякие предметы. На ней нельзя драться. Казалось норм. Зашел, настроил союзы и норм. Это для одного героя легко сделать. А когда у тебя большие войска, то ты не можешь сделать так. Придется разделить контроль за войсками: героя и носильщиков можно отдать нейтралу. А остальных на арене оставить.
самый бредовый - настроить цели атаки. У тех, у кого стоит механика, не смогут тогда атаковать органику. триггерами можно выдавать классификацию
это было в общих чертах. реализовать это можно по-разному. настраивайте союзы через триггеры (есть союзы и аспекты союза - см. там в разделе игрок)
ответ
даббл пост
ответ
IIIНекромантIII:
8gabriel8:
Сделал другое, но спасибо, да был вариант с кличем, но по-моему слишком банально.
Вот что сделал:
Скорость боя повышается, т.к дредноут с огнемётом. Выглядит круто.

23

» WarCraft 3 / Большие описания для героев

Похожие вопросы:

ответ
~8gabriel8:
mishanka122:
Если во всех картах одинаковый id, значит покопайся в хеше.
Это как, можно в личку?
Проблему решил, переделав стандартную способность, а не создавая нестандартную. Это почти что панацея от подобных случаев, когда id (ещё называют raw-code) способности меняется.
ответ
Поскольку его не пугает наличие большого влияния промахов на геймплей - скорее всего он делает рпг. Имхо в рпг всегда клево смотрятся тексттаги полученного урона, для создания которых необходимы триггеры на отлов получения урона. А отлавливаемый урон - можно и прохилить.
Для прохила(и вообще всех манипуляций с задержкой в 0.00 сек) лично я юзаю такие костыли:
Либа здесь только для доп табуляции. Я за чистый жасс + дефайны.
library ZeroTimeEvent

    globals
        constant integer ZTEArraySize = 64//Even 32 is alot, 64 is too much! Exactly what I need!
        timer Zero//Used for 0. sec uses
        integer ZTECurrent = 0
        unit array ZTEUnits[ZTEArraySize]
        integer array ZTEIntegers[ZTEArraySize]
        real array ZTEReals[ZTEArraySize]
        trigger array ZTETriggers[ZTEArraySize]
    endglobals
    
    function ZeroTimeEvent takes nothing returns nothing
            loop
                set  ZTECurrent = ZTECurrent - 1
                call TriggerExecute( ZTETriggers[ZTECurrent] )
                exitwhen ZTECurrent < 1
            endloop
    endfunction
    
    #define ZTEAddUnit(u) = {
        set  ZTEUnits[ZTECurrent] = u
    }
    
    #define ZTEAddInteger(i) = {
        set  ZTEIntegers[ZTECurrent] = i
    }
    
    #define ZTEAddReal(r) = {
        set  ZTEReals[ZTECurrent] = r
    }
    
    #define ConfirmZTE(trig) = {
        set  ZTETriggers[ZTECurrent] = trig
        set  ZTECurrent = ZTECurrent + 1
        call TimerStart( Zero, ZeroTime, false, function ZeroTimeEvent )
    }
    
    
    
endlibrary
Пример использования
#define UnitRemoveForceAttack(u) = {
    call UnitAddAbility( u, 'Abun' )
    call UnitRemoveAbility( u, 'Abun' )
         ZTEAddUnit(u)
         ConfirmZTE(CheckIfUnitHasA002)
}
Минус такой системы в необходимости создавать триггер для каждого блока кода, т.к. массивы блоков кода запрещены

23

» WarCraft 3 / Реплики героев

Принятый ответ
Похожие вопросы:

ответ
ilsva, я решил проверить сам. Поставил на пустую карту алтарь, героя и других юнитов, чтобы убить его. Триггер сделал как у тебя, только без условия и издавать звук я делал от алтаря. - Всё работало. Потом поставил условие на тип героя - так же всё работало. Поэтому возможно проблема в том, что ты делаешь издавать звук от триггерного юнита, а он при этом ещё как бы не создан и его позиция не определена. Попробуй сделать издавать звук от алтаря или же перед тем как издавать звук от юнита - попробуй сделать ждать, например 0.5 сек.
ответ
Не тупи. Сделай трансляцию от ТИПА ЮНИТА, а не от конкретного юнита.
ответ
"Набор звуков" нельзя сделать через триггеры, но можно попробовать через импорт файлов заменить стандартные файлы в уже существующих наборах.
Для этого импортируемому файлу надо прописать путь заменяемого.

23

» WarCraft 3 / Зависание

Похожие вопросы:

ответ
Обычно "Свойства игрока" и все, что ниже, зависает не некоторое время от "загруженности" карты. У меня рекорд был, около трех минут грузилось.
ответ
Не юзай TriggerSleepAction и будет тебе счастье. Особенно когда юзаешь глобальные переменные, вполне вероятно, что конфликт
ответ
Идет подгрузка объекта в память, слк оптимизация и Preload в помощь.
ответ
Вопрос закрыт.
ответ
Maniac_91, Дак ведь оживление можно заюзать при условие, что есть рядом чей-то скелет(Труп), иначе способность нельзя юзнуть так как ни кого не удастся оживить.
А у него при любом раскладе она сработает. А при использование отставить приказа,способность выходит из цикла.
Это может быть говорить о том, что у Способность произошло исключение(Трупов то нет) ?

23

» WarCraft 3 / Что случилось с WE?

Похожие вопросы:

ответ
Нашёл решение для тебя.
Пол-ночи провозился, но нашёл. почему-то это стало делом чести - открыть сию карту в редакторе

В общем, берёшь архив из аттача и тупо суёшь папку UI в корень варкрафта. После этого карта будет открываться любым вариантом редактора - как JNGP (любым), так и (даже!) стандартным.
Важно: локальные файлы должны быть разрешены.

Только там такой срач и дичь, что лучше реально своими руками с нуля писать...

23

» WarCraft 3 / Как сделать Квест.

Похожие вопросы:

ответ
Действие-задание выберай на вкус. Про то, чтобы было "Подошёл к чуваку и появилось ещё одно задание", нужно поставить область возле этого чувака, далее сделать триггер с событием-юнит вошёл в зону, дать владельцу входящего юнита задание, такое-то далее, если оно одноразовое-откл триггер. А воскл знак поставь с помощью "Действие-спецэффекты последние", далее в них выбираешь поставить спецэффект над нужным юнитов, переходим в дополнительно-воскл знак. Это скудный вариант,который легче понять новичкам.
ответ
Спецэффекты - Ping Minimap
ответ
для того чтобы сделать эту систему нужно научиться юзать массивы
и навык в гуи стоит повысить
вот статьи
чтобы нельзя было взять квест пока не выполнил/отменил предыдущий нужно просто проверять есть ли у игрока квест на данный момент или нет
ответ
Master113, добавить через "Новое условие" оператор "или" (Там два разных варианта, удобнее "or, multiple conditions" ("или, несколько условий" - как-то так)), туда поместить сравнения для каждого юнита. (Условие "или" будет выполняться, если выполнится хотя бы 1 условие внутри. Для оператора "и" - должны выполняться все условия внутри. Стандартный раздел триггера "Условия" действует как "и").
ответ
Как это сделано у меня в страннике:
Есть области, 1 для каждого НПС,
Есть группа, куда записаны все НПС.
Есть таймер с периодичностью в 3 секунды. Каждый раз идет проверка. Проверятся, что НПС состоит в группе и если случайное число 0-100 меньше и равно 50, то НПС двигается в случайную точку в своей области.
Когда герой начинает говорить, НПС останавливает свой приказ, поворачивается к герою и удаляется из группы, чтобы когда таймер сработал он не убежал.
Соответственно когда разговор окончен, НПС снова добавляется в эту группу.
Все просто.

23

» WarCraft 3 / Отряд

Принятый ответ
Похожие вопросы:

ответ
Частично не понял, тоесть нужно что бы в кинематике был несуществующий юнит?
Допустим в окне кинематики паладин с каким либо именем что то говорит, но на карте его нет. Если да то это Спецэффекты - Transmission From Unit-Type
ответ
А касательно остальной части, если UnitUserData нигде не используется, создаешь массив юнитов и отрядов. Массив юнитов забиваешь своими капитанами. В UnitUserData капитана пихаешь его порядковый номер в массиве. Создаешь группу юнитов для этого капитана.
  1. Добавление через каст способности.
Я бы делал через 2 разные абилки с одной и той же позицией в интерфейсе. Пока нужный тебе юнит не является частью отряда - у него таргетная абилка при касте которой на капитана он добавляется в группу соответствующего капитана и получает 2ю абилку взамен первой.
Касательно выделения этих пехотинцев - можно намутить что-то с передачей контроля или создать триггер, который будет снимать выделение с юнитов у которых есть 2я абилка. Если ты хочешь чтобы по одиночке можно было выделять пехотинцев - можешь создать переменную для каждого игрока с капитанами, куда будет просто записываться последний выбранный юнит. При снятии выделения - проверять не выбран ли этот же юнит, в случае чего не снимать выделение. Правда не уверен будет ли корректно работать :> В крайнем случае - будет работать в три клика вместо двух. Если я не ошибаюсь.
Касательно поведения этих пехотинцев - что-то реально стоящее сделать сложно. Возможно, но мне не с руки все расписывать :> Простейший вариант - приказывать пехотинцам после добавления в группу следовать за капитаном.
  1. Добавление через атаку капитана
Триггер, проверяющий что капитан получил урон или атакован, как угодно. Далее любым способом проверяешь есть ли в группе этого капитана юниты. Если нет - выбираешь всех пехотинцев N радиусе, добавляешь в отряд, заменяешь абилку/либо просто приказываешь кастануть в капитана первую абилку.
ответ
Ну только триггерные системы отрядов, была такая...
Вот пример ссылочка
Были и другие, поиск в помощь.
Вот еще ссылка
ответ
запомнить всех выбранных, затем очистить эту группу, добавить сначала твоего героя, а затем всех остальных
ответ
  • Выбираешь всех целевых юнитов в группу.
  • Создаёшь дамми.
  • Используя ForGroup и GetEnumUnit, применить на каждого юнита в группе заклинание.
  • Очищаешь групппу.
  • Удаляешь группу.
  • Удаляешь дамми.

У дамми-юнита должны стоять настройки анимации, позволяющие применять способности без задержек, у способности не должно быть кулдауна.

23

» WarCraft 3 / Не запускаются карты. Возможно беда со скриптами

Похожие вопросы:

ответ
все карты с кодом,без кода карта не запустится просто
похоже повреждена/повторяется функция конфиг
проверь близард джи на наличие в нём такой функции и проверь папку с игрой,так же проверь их на наличие функций маин и прочих функций которые создаются WE
если не поможет то переустанови варик

23

» WarCraft 3 / Уровень способности

Похожие вопросы:

ответ
опечатка в редакторе (не моя разумеется)
ответ
Оказывается нужно было указать в доступных улучшениях кастера нестандартное улучшение!
В данном случае у некроманта есть улучшение "магия скелетов", так как именно некромант кастует прокачиваемую способность "оживить мёртвых".
ответ
~8gabriel8:
mishanka122:
Если во всех картах одинаковый id, значит покопайся в хеше.
Это как, можно в личку?
Проблему решил, переделав стандартную способность, а не создавая нестандартную. Это почти что панацея от подобных случаев, когда id (ещё называют raw-code) способности меняется.
ответ
Все должно действовать, постоянно именно так и делаю. Триггер в студию.
P. S. Только одна оговорка: на всякий случай будет лучше, если способность, даваемая даммику, заранее будет присутствовать у какого-нибудь юнита на карте (можно нейтрального и/или не способного её скастануть), иначе иногда не исключены ситуации, когда даммик просто не кастует добавленную ему способность вообще (зависимость определить не удалось, абсолютно в одной и той же уже сохраненной и оптимизированной карте может кастовать, а может не кастовать - если не стал кастовать эту абилу в первый раз, то и всю игру - т. е. весь конкретный запуск конкретно этой карты - уже не станет, но добавлением абилы заранее нейтральному зданию, т. е. прелоадом, лечится надёжно).
ответ
Результат бонуса хп Кешируется, поэтом несмотря на уровень абилка всегда дает хп 1 уровня, а вот при ее удалении движок уберет юниту столько хп сколько указано в текущем уровне сплсобности, таким образом мы можем изменять хп юниту. Абилка в 2 лв,на первом уровне бонус маны иди хп 0, на втором обратный тому что М в хотим получить, к примеру если мы хотим получить 150 хп то пишем -150. Вручаем юниту абилку, ставим 2 уровень и тут же удаляем, движок добавит юниту 150 хп.

23

» WarCraft 3 / Передача от отряда

Похожие вопросы:

ответ
Частично не понял, тоесть нужно что бы в кинематике был несуществующий юнит?
Допустим в окне кинематики паладин с каким либо именем что то говорит, но на карте его нет. Если да то это Спецэффекты - Transmission From Unit-Type
ответ
Ivan99, субтитры включи
Умник

23

» WarCraft 3 / Проверьте, пожалуйста, триггеры!

Похожие вопросы:

ответ
если гуи то они утечны как не крути
ибо там локальные переменные не обнуляются
проверил
утечек куча
в основном точки
ответ
Событие каждые 1 сек времени
пауза triggering unit
^ Не имеет смысла, здесь нет triggering unit, исправляй, сообщи об изменениях или неизменениях.
У тя там чета про убийства ещё, но спрятать юнит проиграв анимацию смерти не означает его убийство и из группы он не удаляется, если состоит. Так что имей в виду.
ответ
Есть вариант: сделать триггер с периодическим событием, действие которого будет поднимать камеру обратно каждые (х) секунд. А в своей карте я сделал через диалог.
ответ
Ну только триггерные системы отрядов, была такая...
Вот пример ссылочка
Были и другие, поиск в помощь.
Вот еще ссылка

23

» WarCraft 3 / Создание скиллов.

Похожие вопросы:

ответ
Sergant1000, а от меня нет
это не вопрос а заказ
так что ему туда
пусть выбирает то которое больше понравится
ответ
Nikita_Gamers, ну вот есть неплохая статья xgm.guru/p/wc3/movingsystem
ответ
ахах, ответ в самом вопросе. Создать скилл сопротивление магии с 10ю уровнями, дать его юниту, выставить нужные значения на каждом уровне скилла.

23

» WarCraft 3 / Стандартная способность

Похожие вопросы:

ответ
да
в движке вара
если найдёшь исходник вара
ответ
ии я очень сложный замутил 4х ступенчатый (не для босов)так как при строительстве его я думал что движок будет пулять спеллы,его придёться переписывать,но я нашел решение если за моба стоит комп то спелы во вкладке нейтрально посивные он будет юзать но не все главное условие чтобы был комп назначен
ответ
Сделай на основе берсерка и кидай сетку через созданного в позиции кастера даммика (невидимого юнита), даммика потом убираешь
ответ
Насколько я знаю, стандартные способности не наносят урон от характеристик героя. Подобное делается только путем создания триггерных спелов
ответ
XGM Bot:
Похожие вопросы:

ответ
да
в движке вара
если найдёшь исходник вара
ответ
параметры способностей хранятся в slk таблицах в mpq архивах
параметры применения способностей хранятся в game.dll
ответ
Steal nerves:
В натуре баг такой? Проверил только что. Улучшение эльфам можно не делать на доспехи. Короче эльфы читеры
ответ
ии я очень сложный замутил 4х ступенчатый (не для босов)так как при строительстве его я думал что движок будет пулять спеллы,его придёться переписывать,но я нашел решение если за моба стоит комп то спелы во вкладке нейтрально посивные он будет юзать но не все главное условие чтобы был комп назначен
ответ
Сделай на основе берсерка и кидай сетку через созданного в позиции кастера даммика (невидимого юнита), даммика потом убираешь


23

» WarCraft 3 / Убрать порчу

Похожие вопросы:

ответ
Момент с порчей и миникартой оказался тем что там высота на уровне воды.
Но саму тень я все равно не могу убрать.
А все вопрос снимаю, это тень от здания
ответ
Fireproof:
Karp:
Maniac_91:
Karp, сейчас неохота ставить) Да я им пока что не планирую пользоваться.
Попробуй создавать порчу в определённой точке - может, в переменных косяк?
попробую этот вариант, например в центре региона какого нибудь, но уже завтра =) отпишусь как проверю.
У тебя макс. лвл = 1, а спеллов для изучения 2. В триггере на изучение спелла первым стоит Ледяной щит:D
и триггерно он не хочет учить второй спел получается? понял. Тогда остаётся установить макс лвл на 10 к примеру, и героям отключить получение опыта через триггер?

23

» WarCraft 3 / Баг какой то

Похожие вопросы:

ответ
EnergyFrost:
quq_CCCP, а для багнутого юнита будет работать GetUnitState хп? Просто тогда будет достаточно 2 проверки, при этом не запоминая хп всех юнитов в группе фениксов.
Если у юнита щас 1 хп. и через 5 секунд снова 1 хп - багнутый (ну либо очень невероятное совпадение для динамического хп феникса)
Работает, 0 хп...
ответ
Проблема решена. Обнаружилась довольно неожиданно - заметил, что во время крита герой не разбивал лицо сам себе, начал искать модификаторы атаки - у героя было 3 пустышки с нулевыми значениями на основе "ракет". При всех пустых значениях вылетает невидимая ракета по самому себе.
ответ
Если способность имеет свой идентификатор приказа, то сделай активацию способности триггерно путем отдачи приказа типа цель-точка, где точку можно взять в твоем случае как координаты юнита-цели. Должно сработать.
ответ
Проблема решается очень просто: отключите оптимизацию скрипта в парсере cJass.
Велики шансы на то, что ниже по коду значение в [1] просто-напросто нигде не используется, и поэтому оптимизатор выпиливает его инициализацию.

Нужен С-подобный синтаксис - пиши на ZINC.
Purge it with fire!

23

» WarCraft 3 / Проблема с моделью эффекта

Похожие вопросы:

ответ
  1. в 1 вопросе может быть лишь 1 вопрос
  2. если для юнита то просто меняй размер юнита в ро иначе смотри пункт 2
  3. раздел 4
  4. уже ответили иначе смотри пункт 2
ответ
незнаю поможет или нет но пробни через кустом скрипт написать это AddUnitAnimationProperties(u, "Alternate", false)
где u - это твой юнит и советую перед ней поставить паузу тригера на 0.1 хотяб
ответ
закрыт по таймауту
ответ
dave_wwid, прикрепляя к "cylinder02" ээфект работает когда модель перемещается в оба направления но изза вращения эффект отображается некорректно. Если прикреплять к другим костям то эффект ленты как и раньше появляется ток когда снаряд движется задом на перед.
Проблему решил поставив в материале галочку на twoside

23

» WarCraft 3 / Сглаз

Похожие вопросы:

ответ
Незнаю как отловить, когда юниты в радиусе волны. Но можно просто двигать точку с той же скоростью что и волна и в том же направлении и выбирать всех в радиусе. Область действия заклинания в РО написана.
ответ
а не вариант прописать герою вторую атаку? и в качестве целей указать деревья
и когда герой бьет по дереву - делаем то что надо

23

» WarCraft 3 / Горение Зданий

Похожие вопросы:

ответ
В редакторе моделей для Вара необходимо создавать точки крепления огня (кости). Они называются sprite.
Цитирую фразу из статьи: Точки крепления и Событийные объекты.
Sprite - крепление для эффекта огня, который появляется при повреждениях, если модель используется для здания или для юнита, классифицируемого в РО как механический.

23

» WarCraft 3 / Улучшение

Принятый ответ
Похожие вопросы:

ответ
Ты добавлял кости? Или через "повышение урона (улучшение)"? Значение последнего у юнита помечено — это добавится "базовый урон".
ответ
NekoriDes:
Тебе нужно именно улучшение или исследование?
Потому что если улучшение, то условие будет выглядеть как-то так: Тип Triggering unit == Юнит, который должен получиться после улучшения.
В редакторе исследования называются улучшениями. Да, мне нужно улучшение
я похоже нашел что искал. нужное условие называлось - "Сравнение типа техники". Этот божественный перевод :/
ответ
DoctorDoza, а, это.. Это не то, что ты подумал.
Здесь пишется текст, который будет виден всем игрокам, когда они наводят мышь на пиктограмму юнита/здания/улучшения, если у него есть требования.
То есть перед требованиями идёт надпись "|Cffffff00Требуется:", где "|Cffffff00" - это цветовой код жёлтого цвета (его можно удалить для экономии места), а "Требуется:" - это текст, который будет виден (его можно прописать частично латиницей, что будет незаметно: "Tpeбyeтcя").
После этой надписи уже пишутся сами требования в столбик.
ответ
Filius Dei:
а если сделать так, юнит изучает улучшение, заблокировать другие улучшения?